﻿using System.Windows;

namespace Poet
{
    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public class VisualStateViewModel : ViewModelBase
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="VisualStateViewModel"/> class.
        /// </summary>
        public VisualStateViewModel()
        {
            Title = "Poet";
            CurrentWindowState = WindowState.Normal;
        }

        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="VisualStateViewModel"/> is topmost.
        /// </summary>
        /// <value>
        ///   <c>true</c> if topmost; otherwise, <c>false</c>.
        /// </value>
        public bool Topmost
        {
            get { return Get(() => Topmost); }
            set { Set(() => Topmost, value); }
        }

        /// <summary>
        /// Gets or sets the title.
        /// </summary>
        /// <value>
        /// The title.
        /// </value>
        public string Title
        {
            get { return Get(() => Title); }
            set { Set(() => Title, value); }
        }

        /// <summary>
        /// Gets or sets the state of the current window.
        /// </summary>
        /// <value>
        /// The state of the current window.
        /// </value>
        public WindowState CurrentWindowState
        {
            get { return Get(() => CurrentWindowState); }
            set { Set(() => CurrentWindowState, value); }
        }

        /// <summary>
        /// Gets or sets a value indicating whether ShowInTaskbar.
        /// </summary>
        public bool ShowInTaskbar
        {
            get { return Get(() => ShowInTaskbar); }
            set { Set(() => ShowInTaskbar, value); }
        }

        /// <summary>
        /// Gets or sets a value indicating whether ShowNotifyIcon.
        /// </summary>
        public bool ShowNotifyIcon
        {
            get { return Get(() => ShowNotifyIcon); }
            set { Set(() => ShowNotifyIcon, value); }
        }
    }
}
